package tools.jackson.module.kotlin.kogeraIntegration.deser.valueClass.parameterSize.primitive

import com.fasterxml.jackson.annotation.JsonCreator
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
import tools.jackson.module.kotlin.assertReflectEquals
import tools.jackson.module.kotlin.defaultMapper
import tools.jackson.module.kotlin.kogeraIntegration.deser.valueClass.Primitive
import tools.jackson.module.kotlin.readValue

/**
 * Up to argument size 32 there is one mask argument for the default argument,
 * 33 ~ 64 there are two, and 65 there are three, so each boundary value is tested.
 * Also, the maximum argument size that can be set in the constructor is 244, so that case is tested as well.
 */
class DeserializeByFactoryWithDefaultArgumentsTest {
    data class Dst32(
        val p00: Primitive,
        val p01: Primitive,
        val p02: Primitive,
        val p03: Primitive,
        val p04: Primitive,
        val p05: Primitive,
        val p06: Primitive,
        val p07: Primitive,
        val p08: Primitive,
        val p09: Primitive,
        val p10: Primitive,
        val p11: Primitive,
        val p12: Primitive,
        val p13: Primitive,
        val p14: Primitive,
        val p15: Primitive,
        val p16: Primitive,
        val p17: Primitive,
        val p18: Primitive,
        val p19: Primitive,
        val p20: Primitive,
        val p21: Primitive,
        val p22: Primitive,
        val p23: Primitive,
        val p24: Primitive,
        val p25: Primitive,
        val p26: Primitive,
        val p27: Primitive,
        val p28: Primitive,
        val p29: Primitive,
        val p30: Primitive,
        val p31: Primitive
    ) {
        companion object {
            @JvmStatic
            @JsonCreator
            fun creator(
                q00: Primitive = Primitive(0),
                q01: Primitive = Primitive(1),
                q02: Primitive = Primitive(2),
                q03: Primitive = Primitive(3),
                q04: Primitive = Primitive(4),
                q05: Primitive = Primitive(5),
                q06: Primitive = Primitive(6),
                q07: Primitive = Primitive(7),
                q08: Primitive = Primitive(8),
                q09: Primitive = Primitive(9),
                q10: Primitive = Primitive(10),
                q11: Primitive = Primitive(11),
                q12: Primitive = Primitive(12),
                q13: Primitive = Primitive(13),
                q14: Primitive = Primitive(14),
                q15: Primitive = Primitive(15),
                q16: Primitive = Primitive(16),
                q17: Primitive = Primitive(17),
                q18: Primitive = Primitive(18),
                q19: Primitive = Primitive(19),
                q20: Primitive = Primitive(20),
                q21: Primitive = Primitive(21),
                q22: Primitive = Primitive(22),
                q23: Primitive = Primitive(23),
                q24: Primitive = Primitive(24),
                q25: Primitive = Primitive(25),
                q26: Primitive = Primitive(26),
                q27: Primitive = Primitive(27),
                q28: Primitive = Primitive(28),
                q29: Primitive = Primitive(29),
                q30: Primitive = Primitive(30),
                q31: Primitive = Primitive(31)
            ) = Dst32(
                q00,
                q01,
                q02,
                q03,
                q04,
                q05,
                q06,
                q07,
                q08,
                q09,
                q10,
                q11,
                q12,
                q13,
                q14,
                q15,
                q16,
                q17,
                q18,
                q19,
                q20,
                q21,
                q22,
                q23,
                q24,
                q25,
                q26,
                q27,
                q28,
                q29,
                q30,
                q31
            )
        }
    }

    @Test
    fun test32() {
        assertEquals(Dst32.creator(), defaultMapper.readValue<Dst32>("{}"))
    }

    data class Dst33(
        val p00: Primitive,
        val p01: Primitive,
        val p02: Primitive,
        val p03: Primitive,
        val p04: Primitive,
        val p05: Primitive,
        val p06: Primitive,
        val p07: Primitive,
        val p08: Primitive,
        val p09: Primitive,
        val p10: Primitive,
        val p11: Primitive,
        val p12: Primitive,
        val p13: Primitive,
        val p14: Primitive,
        val p15: Primitive,
        val p16: Primitive,
        val p17: Primitive,
        val p18: Primitive,
        val p19: Primitive,
        val p20: Primitive,
        val p21: Primitive,
        val p22: Primitive,
        val p23: Primitive,
        val p24: Primitive,
        val p25: Primitive,
        val p26: Primitive,
        val p27: Primitive,
        val p28: Primitive,
        val p29: Primitive,
        val p30: Primitive,
        val p31: Primitive,
        val p32: Primitive
    ) {
        companion object {
            @JvmStatic
            @JsonCreator
            fun creator(
                q00: Primitive = Primitive(0),
                q01: Primitive = Primitive(1),
                q02: Primitive = Primitive(2),
                q03: Primitive = Primitive(3),
                q04: Primitive = Primitive(4),
                q05: Primitive = Primitive(5),
                q06: Primitive = Primitive(6),
                q07: Primitive = Primitive(7),
                q08: Primitive = Primitive(8),
                q09: Primitive = Primitive(9),
                q10: Primitive = Primitive(10),
                q11: Primitive = Primitive(11),
                q12: Primitive = Primitive(12),
                q13: Primitive = Primitive(13),
                q14: Primitive = Primitive(14),
                q15: Primitive = Primitive(15),
                q16: Primitive = Primitive(16),
                q17: Primitive = Primitive(17),
                q18: Primitive = Primitive(18),
                q19: Primitive = Primitive(19),
                q20: Primitive = Primitive(20),
                q21: Primitive = Primitive(21),
                q22: Primitive = Primitive(22),
                q23: Primitive = Primitive(23),
                q24: Primitive = Primitive(24),
                q25: Primitive = Primitive(25),
                q26: Primitive = Primitive(26),
                q27: Primitive = Primitive(27),
                q28: Primitive = Primitive(28),
                q29: Primitive = Primitive(29),
                q30: Primitive = Primitive(30),
                q31: Primitive = Primitive(31),
                q32: Primitive = Primitive(32)
            ) = Dst33(
                q00,
                q01,
                q02,
                q03,
                q04,
                q05,
                q06,
                q07,
                q08,
                q09,
                q10,
                q11,
                q12,
                q13,
                q14,
                q15,
                q16,
                q17,
                q18,
                q19,
                q20,
                q21,
                q22,
                q23,
                q24,
                q25,
                q26,
                q27,
                q28,
                q29,
                q30,
                q31,
                q32
            )
        }
    }

    @Test
    fun test33() {
        assertEquals(Dst33.creator(), defaultMapper.readValue<Dst33>("{}"))
    }

    data class Dst64(
        val p00: Primitive,
        val p01: Primitive,
        val p02: Primitive,
        val p03: Primitive,
        val p04: Primitive,
        val p05: Primitive,
        val p06: Primitive,
        val p07: Primitive,
        val p08: Primitive,
        val p09: Primitive,
        val p10: Primitive,
        val p11: Primitive,
        val p12: Primitive,
        val p13: Primitive,
        val p14: Primitive,
        val p15: Primitive,
        val p16: Primitive,
        val p17: Primitive,
        val p18: Primitive,
        val p19: Primitive,
        val p20: Primitive,
        val p21: Primitive,
        val p22: Primitive,
        val p23: Primitive,
        val p24: Primitive,
        val p25: Primitive,
        val p26: Primitive,
        val p27: Primitive,
        val p28: Primitive,
        val p29: Primitive,
        val p30: Primitive,
        val p31: Primitive,
        val p32: Primitive,
        val p33: Primitive,
        val p34: Primitive,
        val p35: Primitive,
        val p36: Primitive,
        val p37: Primitive,
        val p38: Primitive,
        val p39: Primitive,
        val p40: Primitive,
        val p41: Primitive,
        val p42: Primitive,
        val p43: Primitive,
        val p44: Primitive,
        val p45: Primitive,
        val p46: Primitive,
        val p47: Primitive,
        val p48: Primitive,
        val p49: Primitive,
        val p50: Primitive,
        val p51: Primitive,
        val p52: Primitive,
        val p53: Primitive,
        val p54: Primitive,
        val p55: Primitive,
        val p56: Primitive,
        val p57: Primitive,
        val p58: Primitive,
        val p59: Primitive,
        val p60: Primitive,
        val p61: Primitive,
        val p62: Primitive,
        val p63: Primitive
    ) {
        companion object {
            @JvmStatic
            @JsonCreator
            fun creator(
                q00: Primitive = Primitive(0),
                q01: Primitive = Primitive(1),
                q02: Primitive = Primitive(2),
                q03: Primitive = Primitive(3),
                q04: Primitive = Primitive(4),
                q05: Primitive = Primitive(5),
                q06: Primitive = Primitive(6),
                q07: Primitive = Primitive(7),
                q08: Primitive = Primitive(8),
                q09: Primitive = Primitive(9),
                q10: Primitive = Primitive(10),
                q11: Primitive = Primitive(11),
                q12: Primitive = Primitive(12),
                q13: Primitive = Primitive(13),
                q14: Primitive = Primitive(14),
                q15: Primitive = Primitive(15),
                q16: Primitive = Primitive(16),
                q17: Primitive = Primitive(17),
                q18: Primitive = Primitive(18),
                q19: Primitive = Primitive(19),
                q20: Primitive = Primitive(20),
                q21: Primitive = Primitive(21),
                q22: Primitive = Primitive(22),
                q23: Primitive = Primitive(23),
                q24: Primitive = Primitive(24),
                q25: Primitive = Primitive(25),
                q26: Primitive = Primitive(26),
                q27: Primitive = Primitive(27),
                q28: Primitive = Primitive(28),
                q29: Primitive = Primitive(29),
                q30: Primitive = Primitive(30),
                q31: Primitive = Primitive(31),
                q32: Primitive = Primitive(32),
                q33: Primitive = Primitive(33),
                q34: Primitive = Primitive(34),
                q35: Primitive = Primitive(35),
                q36: Primitive = Primitive(36),
                q37: Primitive = Primitive(37),
                q38: Primitive = Primitive(38),
                q39: Primitive = Primitive(39),
                q40: Primitive = Primitive(40),
                q41: Primitive = Primitive(41),
                q42: Primitive = Primitive(42),
                q43: Primitive = Primitive(43),
                q44: Primitive = Primitive(44),
                q45: Primitive = Primitive(45),
                q46: Primitive = Primitive(46),
                q47: Primitive = Primitive(47),
                q48: Primitive = Primitive(48),
                q49: Primitive = Primitive(49),
                q50: Primitive = Primitive(50),
                q51: Primitive = Primitive(51),
                q52: Primitive = Primitive(52),
                q53: Primitive = Primitive(53),
                q54: Primitive = Primitive(54),
                q55: Primitive = Primitive(55),
                q56: Primitive = Primitive(56),
                q57: Primitive = Primitive(57),
                q58: Primitive = Primitive(58),
                q59: Primitive = Primitive(59),
                q60: Primitive = Primitive(60),
                q61: Primitive = Primitive(61),
                q62: Primitive = Primitive(62),
                q63: Primitive = Primitive(63)
            ) = Dst64(
                q00,
                q01,
                q02,
                q03,
                q04,
                q05,
                q06,
                q07,
                q08,
                q09,
                q10,
                q11,
                q12,
                q13,
                q14,
                q15,
                q16,
                q17,
                q18,
                q19,
                q20,
                q21,
                q22,
                q23,
                q24,
                q25,
                q26,
                q27,
                q28,
                q29,
                q30,
                q31,
                q32,
                q33,
                q34,
                q35,
                q36,
                q37,
                q38,
                q39,
                q40,
                q41,
                q42,
                q43,
                q44,
                q45,
                q46,
                q47,
                q48,
                q49,
                q50,
                q51,
                q52,
                q53,
                q54,
                q55,
                q56,
                q57,
                q58,
                q59,
                q60,
                q61,
                q62,
                q63
            )
        }
    }

    @Test
    fun test64() {
        assertEquals(Dst64.creator(), defaultMapper.readValue<Dst64>("{}"))
    }

    data class Dst65(
        val p00: Primitive,
        val p01: Primitive,
        val p02: Primitive,
        val p03: Primitive,
        val p04: Primitive,
        val p05: Primitive,
        val p06: Primitive,
        val p07: Primitive,
        val p08: Primitive,
        val p09: Primitive,
        val p10: Primitive,
        val p11: Primitive,
        val p12: Primitive,
        val p13: Primitive,
        val p14: Primitive,
        val p15: Primitive,
        val p16: Primitive,
        val p17: Primitive,
        val p18: Primitive,
        val p19: Primitive,
        val p20: Primitive,
        val p21: Primitive,
        val p22: Primitive,
        val p23: Primitive,
        val p24: Primitive,
        val p25: Primitive,
        val p26: Primitive,
        val p27: Primitive,
        val p28: Primitive,
        val p29: Primitive,
        val p30: Primitive,
        val p31: Primitive,
        val p32: Primitive,
        val p33: Primitive,
        val p34: Primitive,
        val p35: Primitive,
        val p36: Primitive,
        val p37: Primitive,
        val p38: Primitive,
        val p39: Primitive,
        val p40: Primitive,
        val p41: Primitive,
        val p42: Primitive,
        val p43: Primitive,
        val p44: Primitive,
        val p45: Primitive,
        val p46: Primitive,
        val p47: Primitive,
        val p48: Primitive,
        val p49: Primitive,
        val p50: Primitive,
        val p51: Primitive,
        val p52: Primitive,
        val p53: Primitive,
        val p54: Primitive,
        val p55: Primitive,
        val p56: Primitive,
        val p57: Primitive,
        val p58: Primitive,
        val p59: Primitive,
        val p60: Primitive,
        val p61: Primitive,
        val p62: Primitive,
        val p63: Primitive,
        val p64: Primitive
    ) {
        companion object {
            @JvmStatic
            @JsonCreator
            fun creator(
                q00: Primitive = Primitive(0),
                q01: Primitive = Primitive(1),
                q02: Primitive = Primitive(2),
                q03: Primitive = Primitive(3),
                q04: Primitive = Primitive(4),
                q05: Primitive = Primitive(5),
                q06: Primitive = Primitive(6),
                q07: Primitive = Primitive(7),
                q08: Primitive = Primitive(8),
                q09: Primitive = Primitive(9),
                q10: Primitive = Primitive(10),
                q11: Primitive = Primitive(11),
                q12: Primitive = Primitive(12),
                q13: Primitive = Primitive(13),
                q14: Primitive = Primitive(14),
                q15: Primitive = Primitive(15),
                q16: Primitive = Primitive(16),
                q17: Primitive = Primitive(17),
                q18: Primitive = Primitive(18),
                q19: Primitive = Primitive(19),
                q20: Primitive = Primitive(20),
                q21: Primitive = Primitive(21),
                q22: Primitive = Primitive(22),
                q23: Primitive = Primitive(23),
                q24: Primitive = Primitive(24),
                q25: Primitive = Primitive(25),
                q26: Primitive = Primitive(26),
                q27: Primitive = Primitive(27),
                q28: Primitive = Primitive(28),
                q29: Primitive = Primitive(29),
                q30: Primitive = Primitive(30),
                q31: Primitive = Primitive(31),
                q32: Primitive = Primitive(32),
                q33: Primitive = Primitive(33),
                q34: Primitive = Primitive(34),
                q35: Primitive = Primitive(35),
                q36: Primitive = Primitive(36),
                q37: Primitive = Primitive(37),
                q38: Primitive = Primitive(38),
                q39: Primitive = Primitive(39),
                q40: Primitive = Primitive(40),
                q41: Primitive = Primitive(41),
                q42: Primitive = Primitive(42),
                q43: Primitive = Primitive(43),
                q44: Primitive = Primitive(44),
                q45: Primitive = Primitive(45),
                q46: Primitive = Primitive(46),
                q47: Primitive = Primitive(47),
                q48: Primitive = Primitive(48),
                q49: Primitive = Primitive(49),
                q50: Primitive = Primitive(50),
                q51: Primitive = Primitive(51),
                q52: Primitive = Primitive(52),
                q53: Primitive = Primitive(53),
                q54: Primitive = Primitive(54),
                q55: Primitive = Primitive(55),
                q56: Primitive = Primitive(56),
                q57: Primitive = Primitive(57),
                q58: Primitive = Primitive(58),
                q59: Primitive = Primitive(59),
                q60: Primitive = Primitive(60),
                q61: Primitive = Primitive(61),
                q62: Primitive = Primitive(62),
                q63: Primitive = Primitive(63),
                q64: Primitive = Primitive(64)
            ) = Dst65(
                q00,
                q01,
                q02,
                q03,
                q04,
                q05,
                q06,
                q07,
                q08,
                q09,
                q10,
                q11,
                q12,
                q13,
                q14,
                q15,
                q16,
                q17,
                q18,
                q19,
                q20,
                q21,
                q22,
                q23,
                q24,
                q25,
                q26,
                q27,
                q28,
                q29,
                q30,
                q31,
                q32,
                q33,
                q34,
                q35,
                q36,
                q37,
                q38,
                q39,
                q40,
                q41,
                q42,
                q43,
                q44,
                q45,
                q46,
                q47,
                q48,
                q49,
                q50,
                q51,
                q52,
                q53,
                q54,
                q55,
                q56,
                q57,
                q58,
                q59,
                q60,
                q61,
                q62,
                q63,
                q64
            )
        }
    }

    @Test
    fun test65() {
        assertEquals(Dst65.creator(), defaultMapper.readValue<Dst65>("{}"))
    }

    // It cannot be a data class because the generated method would exceed the argument size limit.
    class DstMax(
        val p000: Primitive,
        val p001: Primitive,
        val p002: Primitive,
        val p003: Primitive,
        val p004: Primitive,
        val p005: Primitive,
        val p006: Primitive,
        val p007: Primitive,
        val p008: Primitive,
        val p009: Primitive,
        val p010: Primitive,
        val p011: Primitive,
        val p012: Primitive,
        val p013: Primitive,
        val p014: Primitive,
        val p015: Primitive,
        val p016: Primitive,
        val p017: Primitive,
        val p018: Primitive,
        val p019: Primitive,
        val p020: Primitive,
        val p021: Primitive,
        val p022: Primitive,
        val p023: Primitive,
        val p024: Primitive,
        val p025: Primitive,
        val p026: Primitive,
        val p027: Primitive,
        val p028: Primitive,
        val p029: Primitive,
        val p030: Primitive,
        val p031: Primitive,
        val p032: Primitive,
        val p033: Primitive,
        val p034: Primitive,
        val p035: Primitive,
        val p036: Primitive,
        val p037: Primitive,
        val p038: Primitive,
        val p039: Primitive,
        val p040: Primitive,
        val p041: Primitive,
        val p042: Primitive,
        val p043: Primitive,
        val p044: Primitive,
        val p045: Primitive,
        val p046: Primitive,
        val p047: Primitive,
        val p048: Primitive,
        val p049: Primitive,
        val p050: Primitive,
        val p051: Primitive,
        val p052: Primitive,
        val p053: Primitive,
        val p054: Primitive,
        val p055: Primitive,
        val p056: Primitive,
        val p057: Primitive,
        val p058: Primitive,
        val p059: Primitive,
        val p060: Primitive,
        val p061: Primitive,
        val p062: Primitive,
        val p063: Primitive,
        val p064: Primitive,
        val p065: Primitive,
        val p066: Primitive,
        val p067: Primitive,
        val p068: Primitive,
        val p069: Primitive,
        val p070: Primitive,
        val p071: Primitive,
        val p072: Primitive,
        val p073: Primitive,
        val p074: Primitive,
        val p075: Primitive,
        val p076: Primitive,
        val p077: Primitive,
        val p078: Primitive,
        val p079: Primitive,
        val p080: Primitive,
        val p081: Primitive,
        val p082: Primitive,
        val p083: Primitive,
        val p084: Primitive,
        val p085: Primitive,
        val p086: Primitive,
        val p087: Primitive,
        val p088: Primitive,
        val p089: Primitive,
        val p090: Primitive,
        val p091: Primitive,
        val p092: Primitive,
        val p093: Primitive,
        val p094: Primitive,
        val p095: Primitive,
        val p096: Primitive,
        val p097: Primitive,
        val p098: Primitive,
        val p099: Primitive,
        val p100: Primitive,
        val p101: Primitive,
        val p102: Primitive,
        val p103: Primitive,
        val p104: Primitive,
        val p105: Primitive,
        val p106: Primitive,
        val p107: Primitive,
        val p108: Primitive,
        val p109: Primitive,
        val p110: Primitive,
        val p111: Primitive,
        val p112: Primitive,
        val p113: Primitive,
        val p114: Primitive,
        val p115: Primitive,
        val p116: Primitive,
        val p117: Primitive,
        val p118: Primitive,
        val p119: Primitive,
        val p120: Primitive,
        val p121: Primitive,
        val p122: Primitive,
        val p123: Primitive,
        val p124: Primitive,
        val p125: Primitive,
        val p126: Primitive,
        val p127: Primitive,
        val p128: Primitive,
        val p129: Primitive,
        val p130: Primitive,
        val p131: Primitive,
        val p132: Primitive,
        val p133: Primitive,
        val p134: Primitive,
        val p135: Primitive,
        val p136: Primitive,
        val p137: Primitive,
        val p138: Primitive,
        val p139: Primitive,
        val p140: Primitive,
        val p141: Primitive,
        val p142: Primitive,
        val p143: Primitive,
        val p144: Primitive,
        val p145: Primitive,
        val p146: Primitive,
        val p147: Primitive,
        val p148: Primitive,
        val p149: Primitive,
        val p150: Primitive,
        val p151: Primitive,
        val p152: Primitive,
        val p153: Primitive,
        val p154: Primitive,
        val p155: Primitive,
        val p156: Primitive,
        val p157: Primitive,
        val p158: Primitive,
        val p159: Primitive,
        val p160: Primitive,
        val p161: Primitive,
        val p162: Primitive,
        val p163: Primitive,
        val p164: Primitive,
        val p165: Primitive,
        val p166: Primitive,
        val p167: Primitive,
        val p168: Primitive,
        val p169: Primitive,
        val p170: Primitive,
        val p171: Primitive,
        val p172: Primitive,
        val p173: Primitive,
        val p174: Primitive,
        val p175: Primitive,
        val p176: Primitive,
        val p177: Primitive,
        val p178: Primitive,
        val p179: Primitive,
        val p180: Primitive,
        val p181: Primitive,
        val p182: Primitive,
        val p183: Primitive,
        val p184: Primitive,
        val p185: Primitive,
        val p186: Primitive,
        val p187: Primitive,
        val p188: Primitive,
        val p189: Primitive,
        val p190: Primitive,
        val p191: Primitive,
        val p192: Primitive,
        val p193: Primitive,
        val p194: Primitive,
        val p195: Primitive,
        val p196: Primitive,
        val p197: Primitive,
        val p198: Primitive,
        val p199: Primitive,
        val p200: Primitive,
        val p201: Primitive,
        val p202: Primitive,
        val p203: Primitive,
        val p204: Primitive,
        val p205: Primitive,
        val p206: Primitive,
        val p207: Primitive,
        val p208: Primitive,
        val p209: Primitive,
        val p210: Primitive,
        val p211: Primitive,
        val p212: Primitive,
        val p213: Primitive,
        val p214: Primitive,
        val p215: Primitive,
        val p216: Primitive,
        val p217: Primitive,
        val p218: Primitive,
        val p219: Primitive,
        val p220: Primitive,
        val p221: Primitive,
        val p222: Primitive,
        val p223: Primitive,
        val p224: Primitive,
        val p225: Primitive,
        val p226: Primitive,
        val p227: Primitive,
        val p228: Primitive,
        val p229: Primitive,
        val p230: Primitive,
        val p231: Primitive,
        val p232: Primitive,
        val p233: Primitive,
        val p234: Primitive,
        val p235: Primitive,
        val p236: Primitive,
        val p237: Primitive,
        val p238: Primitive,
        val p239: Primitive,
        val p240: Primitive,
        val p241: Primitive,
        val p242: Primitive,
        val p243: Primitive
    ) {
        companion object {
            @JvmStatic
            @JsonCreator
            fun creator(
                q000: Primitive = Primitive(0),
                q001: Primitive = Primitive(1),
                q002: Primitive = Primitive(2),
                q003: Primitive = Primitive(3),
                q004: Primitive = Primitive(4),
                q005: Primitive = Primitive(5),
                q006: Primitive = Primitive(6),
                q007: Primitive = Primitive(7),
                q008: Primitive = Primitive(8),
                q009: Primitive = Primitive(9),
                q010: Primitive = Primitive(10),
                q011: Primitive = Primitive(11),
                q012: Primitive = Primitive(12),
                q013: Primitive = Primitive(13),
                q014: Primitive = Primitive(14),
                q015: Primitive = Primitive(15),
                q016: Primitive = Primitive(16),
                q017: Primitive = Primitive(17),
                q018: Primitive = Primitive(18),
                q019: Primitive = Primitive(19),
                q020: Primitive = Primitive(20),
                q021: Primitive = Primitive(21),
                q022: Primitive = Primitive(22),
                q023: Primitive = Primitive(23),
                q024: Primitive = Primitive(24),
                q025: Primitive = Primitive(25),
                q026: Primitive = Primitive(26),
                q027: Primitive = Primitive(27),
                q028: Primitive = Primitive(28),
                q029: Primitive = Primitive(29),
                q030: Primitive = Primitive(30),
                q031: Primitive = Primitive(31),
                q032: Primitive = Primitive(32),
                q033: Primitive = Primitive(33),
                q034: Primitive = Primitive(34),
                q035: Primitive = Primitive(35),
                q036: Primitive = Primitive(36),
                q037: Primitive = Primitive(37),
                q038: Primitive = Primitive(38),
                q039: Primitive = Primitive(39),
                q040: Primitive = Primitive(40),
                q041: Primitive = Primitive(41),
                q042: Primitive = Primitive(42),
                q043: Primitive = Primitive(43),
                q044: Primitive = Primitive(44),
                q045: Primitive = Primitive(45),
                q046: Primitive = Primitive(46),
                q047: Primitive = Primitive(47),
                q048: Primitive = Primitive(48),
                q049: Primitive = Primitive(49),
                q050: Primitive = Primitive(50),
                q051: Primitive = Primitive(51),
                q052: Primitive = Primitive(52),
                q053: Primitive = Primitive(53),
                q054: Primitive = Primitive(54),
                q055: Primitive = Primitive(55),
                q056: Primitive = Primitive(56),
                q057: Primitive = Primitive(57),
                q058: Primitive = Primitive(58),
                q059: Primitive = Primitive(59),
                q060: Primitive = Primitive(60),
                q061: Primitive = Primitive(61),
                q062: Primitive = Primitive(62),
                q063: Primitive = Primitive(63),
                q064: Primitive = Primitive(64),
                q065: Primitive = Primitive(65),
                q066: Primitive = Primitive(66),
                q067: Primitive = Primitive(67),
                q068: Primitive = Primitive(68),
                q069: Primitive = Primitive(69),
                q070: Primitive = Primitive(70),
                q071: Primitive = Primitive(71),
                q072: Primitive = Primitive(72),
                q073: Primitive = Primitive(73),
                q074: Primitive = Primitive(74),
                q075: Primitive = Primitive(75),
                q076: Primitive = Primitive(76),
                q077: Primitive = Primitive(77),
                q078: Primitive = Primitive(78),
                q079: Primitive = Primitive(79),
                q080: Primitive = Primitive(80),
                q081: Primitive = Primitive(81),
                q082: Primitive = Primitive(82),
                q083: Primitive = Primitive(83),
                q084: Primitive = Primitive(84),
                q085: Primitive = Primitive(85),
                q086: Primitive = Primitive(86),
                q087: Primitive = Primitive(87),
                q088: Primitive = Primitive(88),
                q089: Primitive = Primitive(89),
                q090: Primitive = Primitive(90),
                q091: Primitive = Primitive(91),
                q092: Primitive = Primitive(92),
                q093: Primitive = Primitive(93),
                q094: Primitive = Primitive(94),
                q095: Primitive = Primitive(95),
                q096: Primitive = Primitive(96),
                q097: Primitive = Primitive(97),
                q098: Primitive = Primitive(98),
                q099: Primitive = Primitive(99),
                q100: Primitive = Primitive(100),
                q101: Primitive = Primitive(101),
                q102: Primitive = Primitive(102),
                q103: Primitive = Primitive(103),
                q104: Primitive = Primitive(104),
                q105: Primitive = Primitive(105),
                q106: Primitive = Primitive(106),
                q107: Primitive = Primitive(107),
                q108: Primitive = Primitive(108),
                q109: Primitive = Primitive(109),
                q110: Primitive = Primitive(110),
                q111: Primitive = Primitive(111),
                q112: Primitive = Primitive(112),
                q113: Primitive = Primitive(113),
                q114: Primitive = Primitive(114),
                q115: Primitive = Primitive(115),
                q116: Primitive = Primitive(116),
                q117: Primitive = Primitive(117),
                q118: Primitive = Primitive(118),
                q119: Primitive = Primitive(119),
                q120: Primitive = Primitive(120),
                q121: Primitive = Primitive(121),
                q122: Primitive = Primitive(122),
                q123: Primitive = Primitive(123),
                q124: Primitive = Primitive(124),
                q125: Primitive = Primitive(125),
                q126: Primitive = Primitive(126),
                q127: Primitive = Primitive(127),
                q128: Primitive = Primitive(128),
                q129: Primitive = Primitive(129),
                q130: Primitive = Primitive(130),
                q131: Primitive = Primitive(131),
                q132: Primitive = Primitive(132),
                q133: Primitive = Primitive(133),
                q134: Primitive = Primitive(134),
                q135: Primitive = Primitive(135),
                q136: Primitive = Primitive(136),
                q137: Primitive = Primitive(137),
                q138: Primitive = Primitive(138),
                q139: Primitive = Primitive(139),
                q140: Primitive = Primitive(140),
                q141: Primitive = Primitive(141),
                q142: Primitive = Primitive(142),
                q143: Primitive = Primitive(143),
                q144: Primitive = Primitive(144),
                q145: Primitive = Primitive(145),
                q146: Primitive = Primitive(146),
                q147: Primitive = Primitive(147),
                q148: Primitive = Primitive(148),
                q149: Primitive = Primitive(149),
                q150: Primitive = Primitive(150),
                q151: Primitive = Primitive(151),
                q152: Primitive = Primitive(152),
                q153: Primitive = Primitive(153),
                q154: Primitive = Primitive(154),
                q155: Primitive = Primitive(155),
                q156: Primitive = Primitive(156),
                q157: Primitive = Primitive(157),
                q158: Primitive = Primitive(158),
                q159: Primitive = Primitive(159),
                q160: Primitive = Primitive(160),
                q161: Primitive = Primitive(161),
                q162: Primitive = Primitive(162),
                q163: Primitive = Primitive(163),
                q164: Primitive = Primitive(164),
                q165: Primitive = Primitive(165),
                q166: Primitive = Primitive(166),
                q167: Primitive = Primitive(167),
                q168: Primitive = Primitive(168),
                q169: Primitive = Primitive(169),
                q170: Primitive = Primitive(170),
                q171: Primitive = Primitive(171),
                q172: Primitive = Primitive(172),
                q173: Primitive = Primitive(173),
                q174: Primitive = Primitive(174),
                q175: Primitive = Primitive(175),
                q176: Primitive = Primitive(176),
                q177: Primitive = Primitive(177),
                q178: Primitive = Primitive(178),
                q179: Primitive = Primitive(179),
                q180: Primitive = Primitive(180),
                q181: Primitive = Primitive(181),
                q182: Primitive = Primitive(182),
                q183: Primitive = Primitive(183),
                q184: Primitive = Primitive(184),
                q185: Primitive = Primitive(185),
                q186: Primitive = Primitive(186),
                q187: Primitive = Primitive(187),
                q188: Primitive = Primitive(188),
                q189: Primitive = Primitive(189),
                q190: Primitive = Primitive(190),
                q191: Primitive = Primitive(191),
                q192: Primitive = Primitive(192),
                q193: Primitive = Primitive(193),
                q194: Primitive = Primitive(194),
                q195: Primitive = Primitive(195),
                q196: Primitive = Primitive(196),
                q197: Primitive = Primitive(197),
                q198: Primitive = Primitive(198),
                q199: Primitive = Primitive(199),
                q200: Primitive = Primitive(200),
                q201: Primitive = Primitive(201),
                q202: Primitive = Primitive(202),
                q203: Primitive = Primitive(203),
                q204: Primitive = Primitive(204),
                q205: Primitive = Primitive(205),
                q206: Primitive = Primitive(206),
                q207: Primitive = Primitive(207),
                q208: Primitive = Primitive(208),
                q209: Primitive = Primitive(209),
                q210: Primitive = Primitive(210),
                q211: Primitive = Primitive(211),
                q212: Primitive = Primitive(212),
                q213: Primitive = Primitive(213),
                q214: Primitive = Primitive(214),
                q215: Primitive = Primitive(215),
                q216: Primitive = Primitive(216),
                q217: Primitive = Primitive(217),
                q218: Primitive = Primitive(218),
                q219: Primitive = Primitive(219),
                q220: Primitive = Primitive(220),
                q221: Primitive = Primitive(221),
                q222: Primitive = Primitive(222),
                q223: Primitive = Primitive(223),
                q224: Primitive = Primitive(224),
                q225: Primitive = Primitive(225),
                q226: Primitive = Primitive(226),
                q227: Primitive = Primitive(227),
                q228: Primitive = Primitive(228),
                q229: Primitive = Primitive(229),
                q230: Primitive = Primitive(230),
                q231: Primitive = Primitive(231),
                q232: Primitive = Primitive(232),
                q233: Primitive = Primitive(233),
                q234: Primitive = Primitive(234),
                q235: Primitive = Primitive(235),
                q236: Primitive = Primitive(236),
                q237: Primitive = Primitive(237),
                q238: Primitive = Primitive(238),
                q239: Primitive = Primitive(239),
                q240: Primitive = Primitive(240),
                q241: Primitive = Primitive(241),
                q242: Primitive = Primitive(242),
                q243: Primitive = Primitive(243)
            ) = DstMax(
                q000,
                q001,
                q002,
                q003,
                q004,
                q005,
                q006,
                q007,
                q008,
                q009,
                q010,
                q011,
                q012,
                q013,
                q014,
                q015,
                q016,
                q017,
                q018,
                q019,
                q020,
                q021,
                q022,
                q023,
                q024,
                q025,
                q026,
                q027,
                q028,
                q029,
                q030,
                q031,
                q032,
                q033,
                q034,
                q035,
                q036,
                q037,
                q038,
                q039,
                q040,
                q041,
                q042,
                q043,
                q044,
                q045,
                q046,
                q047,
                q048,
                q049,
                q050,
                q051,
                q052,
                q053,
                q054,
                q055,
                q056,
                q057,
                q058,
                q059,
                q060,
                q061,
                q062,
                q063,
                q064,
                q065,
                q066,
                q067,
                q068,
                q069,
                q070,
                q071,
                q072,
                q073,
                q074,
                q075,
                q076,
                q077,
                q078,
                q079,
                q080,
                q081,
                q082,
                q083,
                q084,
                q085,
                q086,
                q087,
                q088,
                q089,
                q090,
                q091,
                q092,
                q093,
                q094,
                q095,
                q096,
                q097,
                q098,
                q099,
                q100,
                q101,
                q102,
                q103,
                q104,
                q105,
                q106,
                q107,
                q108,
                q109,
                q110,
                q111,
                q112,
                q113,
                q114,
                q115,
                q116,
                q117,
                q118,
                q119,
                q120,
                q121,
                q122,
                q123,
                q124,
                q125,
                q126,
                q127,
                q128,
                q129,
                q130,
                q131,
                q132,
                q133,
                q134,
                q135,
                q136,
                q137,
                q138,
                q139,
                q140,
                q141,
                q142,
                q143,
                q144,
                q145,
                q146,
                q147,
                q148,
                q149,
                q150,
                q151,
                q152,
                q153,
                q154,
                q155,
                q156,
                q157,
                q158,
                q159,
                q160,
                q161,
                q162,
                q163,
                q164,
                q165,
                q166,
                q167,
                q168,
                q169,
                q170,
                q171,
                q172,
                q173,
                q174,
                q175,
                q176,
                q177,
                q178,
                q179,
                q180,
                q181,
                q182,
                q183,
                q184,
                q185,
                q186,
                q187,
                q188,
                q189,
                q190,
                q191,
                q192,
                q193,
                q194,
                q195,
                q196,
                q197,
                q198,
                q199,
                q200,
                q201,
                q202,
                q203,
                q204,
                q205,
                q206,
                q207,
                q208,
                q209,
                q210,
                q211,
                q212,
                q213,
                q214,
                q215,
                q216,
                q217,
                q218,
                q219,
                q220,
                q221,
                q222,
                q223,
                q224,
                q225,
                q226,
                q227,
                q228,
                q229,
                q230,
                q231,
                q232,
                q233,
                q234,
                q235,
                q236,
                q237,
                q238,
                q239,
                q240,
                q241,
                q242,
                q243
            )
        }
    }

    @Test
    fun testMax() {
        assertReflectEquals(DstMax.creator(), defaultMapper.readValue<DstMax>("{}"))
    }
}
